Skip to content

Add agentic issue triage workflow (#2484)#3012

Merged
RickWinter merged 5 commits into
microsoft:mainfrom
RickWinter:rickwinter-implement-agentic-workflow-issue-triage
Jul 10, 2026
Merged

Add agentic issue triage workflow (#2484)#3012
RickWinter merged 5 commits into
microsoft:mainfrom
RickWinter:rickwinter-implement-agentic-workflow-issue-triage

Conversation

@RickWinter

Copy link
Copy Markdown
Member

Summary

Implements an agentic issue triage workflow for the repository (closes #2484). When an issue is opened or reopened, a GitHub Agentic Workflow (gh-aw) analyzes the content and applies triage metadata, then posts a concise rationale comment.

What it does

  • Classification label (mutually exclusive): exactly one of bug, enhancement, question, or engineering item.
  • Additional labels: relevant area labels (tools-*, server-*, packages-*), extension labels, and special labels (blocker, regression, customer-reported, automation, agentic-workflows) when the content supports them. Labels that do not exist in the repo are skipped.
  • Issue Type field: bug -> Bug, enhancement -> Feature, question/engineering item -> Task.
  • Priority field: set from an Urgent/High/Medium/Low rubric, using the exact configured Priority option values. If the exact option names cannot be resolved, Priority is left unset and reported via report-incomplete.
  • Owner: recommends one primary owner in the comment, or leaves it blank with a reason. No user assignment is performed.

Guardrails

  • Processes issues only, never pull requests.
  • Never removes existing labels; does not close or lock issues.
  • Does not overwrite an existing classification label unless there is clear evidence it is wrong.
  • Uses report-incomplete instead of guessing when required labels or field options are unavailable.

Scope boundary

The existing event-processor workflow remains the owner of lifecycle automation (stale handling, close/lock, team-triage routing). This new workflow only handles semantic classification and issue-field assignment, so the two do not conflict.

Files

  • .github/workflows/issue-triage-agent.md (workflow source)
  • .github/workflows/issue-triage-agent.lock.yml (compiled via gh aw compile)
  • .github/aw/actions-lock.json (setup action pin bumped by the compiler)

Validation

  • gh aw compile issue-triage-agent: 0 errors, 0 warnings
  • gh aw validate issue-triage-agent: passed
  • Invoke-Cspell.ps1: passed

Invoking Livetests

Copilot submitted PRs are not trustworthy by default. Users with write access to the repo need to validate the contents of this PR before leaving a comment with the text /azp run mcp - pullrequest - live. This will trigger the necessary livetest workflows to complete required validation.

Adds a gh-aw Issue Triage Agent that classifies new/reopened issues, applies classification, area, and special labels, sets Issue Type and Priority fields, and posts a rationale comment with an owner recommendation.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 8, 2026 19:16
@RickWinter RickWinter requested review from a team as code owners July 8, 2026 19:16

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new GitHub Agentic Workflow (gh-aw) to automatically triage newly opened/reopened issues by applying labels, setting issue type/fields, and posting a rationale comment. This fits alongside existing repo automation by focusing on semantic classification and metadata assignment.

Changes:

  • Added gh-aw workflow source for issue triage (issue-triage-agent.md) describing classification, labeling, field updates, and commenting behavior.
  • Added the compiled/locked GitHub Actions workflow (issue-triage-agent.lock.yml) generated via gh aw compile.
  • Updated the gh-aw setup action pin in .github/aw/actions-lock.json.

Reviewed changes

Copilot reviewed 2 out of 3 changed files in this pull request and generated 4 comments.

File Description
.github/workflows/issue-triage-agent.md Defines the agent prompt/spec for issue triage (labels, fields, rationale comment).
.github/workflows/issue-triage-agent.lock.yml Generated workflow that executes the agent with firewall + safe-outputs enforcement.
.github/aw/actions-lock.json Bumps the pinned github/gh-aw-actions/setup action version used by gh-aw compilation.

Comment thread .github/workflows/issue-triage-agent.md
Comment thread .github/workflows/issue-triage-agent.lock.yml
Comment thread .github/workflows/issue-triage-agent.lock.yml
Comment thread .github/workflows/issue-triage-agent.lock.yml
Address PR review feedback: restrict the github MCP guard policy to the
current repository via allowed-repos, and resolve the guardrail
contradiction so the workflow only ever adds labels.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@RickWinter RickWinter enabled auto-merge (squash) July 9, 2026 16:24
Copilot and others added 3 commits July 9, 2026 11:25
Disable gh-aw automatic report-incomplete issue creation and report unavailable triage configuration in the triggering issue comment instead.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Retain report-incomplete in a single tracking issue while skipping that issue's triage run to prevent recursion.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Declare the optional workflow-dispatch issue_number input required by gh aw trial trigger contexts.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@RickWinter RickWinter merged commit c8b5724 into microsoft:main Jul 10, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Agentic workflow to label and triage issues

3 participants